In the Session Initiation Protocol (SIP), a large number of features involve two or more end-to-end sessions. Examples of such features include call transfers, conferencing, etc. Also in SIP, each point-to-point session is independent—resulting in independent SIP Dialog Ids for every session (i.e., call-id+tags). Some SIP Architectures employ Back-to-Back User Agents (B2BUAs) for various purposes (e.g., sequenced applications). The problem with employing B2BUAs rather than proxies is that B2BUAs break the coherency of the point-to-point calls. In other words, when a single session traverses B2BUA based elements, the SIP dialog ids are modified as defined by SIP standards.
Current solutions like P-Charging-Vector (IMS Charging ID value correlates a SIP call as it traverses different sequenced applications including B2BUAs), Universal Caller ID (An identifier to tag a contact center call as it traverse various elements like announcement server, self-service portal etc. before landing at the agent), and Session-Id provide a unique identifier to correlate the parts of an end-to-end session as it traverses B2BUAs.
However, for the SIP features comprising multiple individual sessions (that traverse via B2BUAs or proxies), there is no easy way to correlate those sessions. Indeed, while there are currently solutions to overcome the problem of B2BUAs modifying Dialog Ids, there is no currently viable solution to address the problem arising due to call topology modification.